package second.stackandqueue;

import java.util.LinkedList;
import java.util.List;

public class Solution02 {
}

class MyQueue {

    List<Integer> stack1;
    List<Integer> stack2;
    int size;

    public MyQueue() {
        stack1 = new LinkedList<>();
        stack2 = new LinkedList<>();
        size = 0;
    }

    public void push(int x) {
        stack1.add(x);
        size++;
    }

    public int pop() {
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.add(stack1.remove(stack1.size() - 1));
            }
        }
        size--;
        return stack2.remove(stack2.size() - 1);
    }

    public int peek() {
        if (stack2.isEmpty()) {
            while (!stack1.isEmpty()) {
                stack2.add(stack1.remove(stack1.size() - 1));
            }
        }
        return stack2.get(stack2.size() - 1);
    }

    public boolean empty() {
        return size == 0;
    }
}